System and method for arranging clusters in a display by theme

ABSTRACT

A system and method for arranging clusters in a display by theme. Themes are found within a plurality of clusters. There are one or more concepts per theme and one or more documents per cluster. Those clusters that meet a best fit criteria are assigned by theme into a set of spines with no more than one spine formed per theme. Those spines that are unique from the other spines are retained in the set. The spines that were retained in the set are arranged in a display.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 10/778,416, filed Feb. 13, 2004 now U.S. Pat. No. 7,191,175,pending, the priority date of which is claimed and the disclosure ofwhich is incorporated by reference.

FIELD OF THE INVENTION

The present invention relates in general to data visualization and, inparticular, to a system and method for arranging concept clusters inthematic. neighborhood relationships in a two-dimensional visual displayspace.

BACKGROUND OF THE INVENTION

In general, data visualization transforms numeric or textual informationinto a graphical display format to assist users in understandingunderlying trends and principles in the data. Effective datavisualization complements and, in some instances, supplants numbers andtext as a more intuitive visual presentation format than raw numbers ortext alone. However, graphical data visualization is constrained by thephysical limits of computer display systems. Two-dimensional andthree-dimensional visualized information can be readily displayed.However, visualized information in excess of three dimensions must beartificially compressed if displayed on conventional display devices.Careful use of color, shape and temporal attributes can simulatemultiple dimensions, but comprehension and usability become difficult asadditional layers of modeling are artificially grafted into a two- orthree-dimensional display space.

Mapping multi-dimensional information into a two- or three-dimensionaldisplay space potentially presents several problems. For instance, aviewer could misinterpret dependent relationships between discreteobjects displayed adjacently in a two or three dimensional display.Similarly, a viewer could erroneously interpret dependent variables asindependent and independent variables as dependent. This type of problemoccurs, for example, when visualizing clustered data, which presentsdiscrete groupings of related data. Other factors further complicate theinterpretation and perception of visualized data, based on the Gestaltprinciples of proximity, similarity, closed region, connectedness, goodcontinuation, and closure, such as described in R. E. Horn, “VisualLanguage: Global Communication for the 21^(st) Century,” Ch. 3, MacroVUPress (1998), the disclosure of which is incorporated by reference.

Conventionally, objects, such as clusters, modeled in multi-dimensionalconcept space are generally displayed in two- or three-dimensionaldisplay space as geometric objects. Independent variables are modeledthrough object attributes, such as radius, volume, angle, distance andso forth. Dependent variables are modeled within the two or threedimensions. However, poor cluster placement within the two or threedimensions can mislead a viewer into misinterpreting dependentrelationships between discrete objects.

Consider, for example, a group of clusters, which each contain a groupof points corresponding to objects sharing a common set of traits. Eachcluster is located at some distance from a common origin along a vectormeasured at a fixed angle from a common axis. The radius of each clusterreflects the number of objects contained. Clusters located along thesame vector are similar in traits to those clusters located on vectorsseparated by a small cosine rotation. However, the radius and distanceof each cluster from the common origin are independent variablesrelative to other clusters. When displayed in two dimensions, theoverlaying or overlapping of clusters could mislead the viewer intoperceiving data dependencies between the clusters where no such datadependencies exist.

Conversely, multi-dimensional information can be advantageously mappedinto a two- or three-dimensional display space to assist withcomprehension based on spatial appearances. Consider, as a furtherexample, a group of clusters, which again each contain a group of pointscorresponding to objects sharing a common set of traits and in which oneor more “popular” concepts or traits frequently appear in some of theclusters. Since the distance of each cluster from the common origin isan independent variable relative to other clusters, those clusters thatcontain popular concepts or traits may be placed in widely separatedregions of the display space and could similarly mislead the viewer intoperceiving no data dependencies between the clusters where such datadependencies exist.

One approach to depicting thematic relationships between individualclusters applies a force-directed or “spring” algorithm. Clusters aretreated as bodies in a virtual physical system. Each body hasphysics-based forces acting on or between them, such as magneticrepulsion or gravitational attraction. The forces on each body arecomputed in discrete time steps and the positions of the bodies areupdated. However, the methodology exhibits a computational complexity oforder O(n²) per discrete time step and scales poorly to clusterformations having a few hundred nodes. Moreover, large groupings ofclusters tend to pack densely within the display space, thereby losingany meaning assigned to the proximity of related clusters.

Therefore, there is a need for an approach to efficiently placingclusters based on popular concepts or traits into thematic neighborhoodsthat map multiple cluster relationships in a visual display space.

There is a further need for an approach to orienting data clusters toproperly visualize independent and dependent variables while compressingthematic relationships to emphasize thematically stronger relationships.

SUMMARY OF THE INVENTION

Relationships between concept clusters are shown in a two-dimensionaldisplay space by combining connectedness and proximity. Clusters sharing“popular” concepts are identified by evaluating thematically-closestneighboring clusters, which are assigned into linear cluster spinesarranged to avoid object overlap. The cluster arrangement methodologyexhibits a highly-scalable computational complexity of order O(n).

An embodiment provides a system and method for arranging conceptclusters in thematic neighborhood relationships in a two-dimensionalvisual display space. A set of clusters is selected from a conceptspace. The concept space includes a multiplicity of clusters withconcepts visualizing document content based on extracted concepts. Atheme in each of a plurality of the clusters is identified. Each themeincludes at least one such concept ranked within the cluster. Aplurality of unique candidate spines is logically formed. Each candidatespine includes clusters commonly sharing at least one such concept. Oneor more of the clusters are assigned to one such candidate spine havinga substantially best fit. Each such best fit candidate spinesufficiently unique from each other such best fit candidate spine isidentified. The identified best fit candidate spine is placed in avisual display space. Each non-identified best fit candidate spine isplaced in the visual display space relative to an anchor cluster on onesuch identified best fit candidate spine.

A further embodiment comprises a system and method for arrangingclusters in a display by theme. Themes are found within a plurality ofclusters. There are one or more concepts per theme and one or moredocuments per cluster. Those clusters that meet a best fit criteria areassigned by theme into a set of spines with no more than one spineformed per theme. Those spines that are unique from the other spines areretained in the set. The spines that were retained in the set arearranged in a display.

Still other embodiments of the present invention will become readilyapparent to those skilled in the art from the following detaileddescription, wherein are one embodiments of the invention by way ofillustrating the best mode contemplated for carrying out the invention.As will be realized, the invention is capable of other and differentembodiments and its several details are capable of modifications invarious obvious respects, all without departing from the spirit and thescope of the present invention. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a system for arranging conceptclusters in thematic neighborhood relationships in a two-dimensionalvisual display space, in accordance with the present invention.

FIG. 2 is a block diagram showing the system modules implementing thedisplay generator of FIG. 1.

FIG. 3 is a flow diagram showing a method for arranging concept clustersin thematic neighborhood relationships in a two-dimensional visualdisplay space, in accordance with the present invention.

FIG. 4 is a flow diagram showing the routine for generating clusterconcepts for use in the method of FIG. 3.

FIG. 5 is a flow diagram showing the routine for selecting candidatespines for use in the method of FIG. 3.

FIG. 6 is a flow diagram showing the routine for assigning clusters tocandidate spines for use in the method of FIG. 3.

FIG. 7 is a flow diagram showing the routine for placing unique seedspines for use in the method of FIG. 3.

FIG. 8 is a flow diagram showing the routine for placing remaining bestfit spines for use in the method of FIG. 3.

FIG. 9 is a flow diagram showing the function for selecting an anchorcluster for use in the routine of FIG. 8.

FIG. 10 is a data representation diagram showing, by way of example, aview of a cluster spine.

FIGS. 11A-C are data representation diagrams showing anchor pointswithin cluster spines.

FIG. 12 is a flow diagram showing the function for grafting a spinecluster onto a spine for use in the routine of FIG. 8.

FIG. 13 is a data representation diagram showing cluster placementrelative to an anchor point.

FIG. 14 is a data representation diagram showing a completed clusterplacement.

DETAILED DESCRIPTION

Glossary

-   Concept: One or more preferably root stem normalized words defining    a specific meaning.-   Theme: One or more concepts defining a semantic meaning.-   Cluster: Grouping of documents containing one or more common themes.-   Spine: Grouping of clusters sharing a single concept preferably    arranged linearly along a vector. Also referred to as a cluster    spine.-   Spine Group: Set of connected and semantically-related spines.    The foregoing terms are used throughout this document and, unless    indicated otherwise, are assigned the meanings presented above.    System Overview

FIG. 1 is a block diagram showing a system 10 for arranging conceptclusters in thematic neighborhood relationships in a two-dimensionalvisual display space, in accordance with the present invention. By wayof illustration, the system 10 operates in a distributed computingenvironment, which includes a plurality of heterogeneous systems anddocument sources. A backend server 11 executes a workbench suite 31 forproviding a user interface framework for automated document management,processing and analysis. The backend server 11 is coupled to a storagedevice 13, which stores documents 14, in the form of structured orunstructured data, and a database 30 for maintaining documentinformation. A production server 12 includes a document mapper 32, thatincludes a clustering engine 33 and display generator 34. The clusteringengine 33 performs efficient document scoring and clustering, such asdescribed in commonly-assigned U.S. patent application Ser. No.10/626,984, filed Jul. 25, 2003, pending, the disclosure of which isincorporated by reference. The display generator 34 arranges conceptclusters in thematic neighborhood relationships in a two-dimensionalvisual display space, as further described below beginning withreference to FIG. 2.

The document mapper 32 operates on documents retrieved from a pluralityof local sources. The local sources include documents 17 maintained in astorage device 16 coupled to a local server 15 and documents 20maintained in a storage device 19 coupled to a local client 18. Thelocal server 15 and local client 18 are interconnected to the productionsystem 11 over an intranetwork 21. In addition, the document mapper 32can identify and retrieve documents from remote sources over aninternetwork 22, including the Internet, through a gateway 23 interfacedto the intranetwork 21. The remote sources include documents 26maintained in a storage device 25 coupled to a remote server 24 anddocuments 29 maintained in a storage device 28 coupled to a remoteclient 27.

The individual documents 17, 20, 26, 29 include all forms and types ofstructured and unstructured data, including electronic message stores,such as word processing documents, electronic mail (email) folders, Webpages, and graphical or multimedia data. Notwithstanding, the documentscould be in the form of organized data, such as stored in a spreadsheetor database.

In one embodiment, the individual documents 17, 20, 26, 29 includeelectronic message folders, such as maintained by the Outlook andOutlook Express products, licensed by Microsoft Corporation, Redmond,Wash. The database is an SQL-based relational database, such as theOracle database management system, release 8, licensed by OracleCorporation, Redwood Shores, Calif.

The individual computer systems, including backend server 11, productionserver 32, server 15, client 18, remote server 24 and remote client 27,are general purpose, programmed digital computing devices consisting ofa central processing unit (CPU), random access memory (RAM),non-volatile secondary storage, such as a hard drive or CD ROM drive,network interfaces, and peripheral devices, including user interfacingmeans, such as a keyboard and display. Program code, including softwareprograms, and data are loaded into the RAM for execution and processingby the CPU and results are generated for display, output, transmittal,or storage.

Display Generator

FIG. 2 is a block diagram showing the system modules implementing thedisplay generator 34 of FIG. 1. The display generator 34 includesclustering, theme generator 41 and spine placement 42 components andmaintains attached storage (not shown) and database 46. Individualdocuments 14 are analyzed by the clustering component 44 to formclusters 50 of semantically scored documents, such as described incommonly-assigned U.S. patent application Ser. No. 10/626,984, filedJul. 25, 2003, pending, the disclosure of which is incorporated byreference. In one embodiment, document concepts 47 are formed fromconcepts and terms extracted from the documents 14 and the frequenciesof occurrences and reference counts of the concepts and terms aredetermined. Each concept and term is then scored based on frequency,concept weight, structural weight, and corpus weight. The documentconcept scores 48 are compressed and assigned to normalized scorevectors for each of the documents 14. The similarities between each ofthe normalized score vectors are determined, preferably as cosinevalues. A set of candidate seed documents is evaluated to select a setof seed documents 49 as initial cluster centers based on relativesimilarity between the assigned normalized score vectors for each of thecandidate seed documents or using a dynamic threshold based on ananalysis of the similarities of the documents 14 from a center of eachcluster 15, such as described in commonly-assigned U.S. patentapplication Ser. No. 10/626,984, filed Jul. 25, 2003, pending, thedisclosure of which is incorporated by reference. The remaining non-seeddocuments are evaluated against the cluster centers also based onrelative similarity and are grouped into the clusters 50 based onbest-fit, subject to a minimum fit criterion.

The theme generator 41 evaluates the document concepts 47 assigned toeach of the clusters 50 and identifies cluster concepts 53 for eachcluster 50, as further described below with reference to FIG. 4.Briefly, the document concepts 47 for each cluster 50 are ranked intoranked cluster concepts 52 based on cumulative document concept scores51. The top-ranked document concepts 47 are designated as clusterconcepts 53. In the described embodiment, each cluster concept 53 mustalso be a document concept 47 appearing in the initial cluster center,be contained in a minimum of two documents 14 or at least 30% of thedocuments 14 in the cluster 50. Other cluster concept membershipcriteria are possible.

The cluster placement component 42 places spines and certain clusters 50into a two-dimensional display space as a visualization 43. The clusterplacement component 42 performs four principal functions. First, thecluster placement component 42 selects candidate spines 55, as furtherdescribed below with reference to FIG. 5. Briefly, the candidate spines55 are selected by surveying the cluster concepts 53 for each cluster50. Each cluster concept 53 shared by two or more clusters 50 canpotentially form a spine of clusters 50. However, those cluster concepts53 referenced by just a single cluster 50 or by more than 10% of theclusters 50 are discarded. The remaining clusters 50 are identified ascandidate spine concepts 54, which each logically form a candidate spine55.

Second, the cluster placement component 42 assigns each of the clusters50 to a best fit spine 56, as further described below with reference toFIG. 6. Briefly, the fit of each candidate spine 55 to a cluster 50 isdetermined by evaluating the candidate spine concept 54 to the clusterconcept 53. The candidate spine 55 exhibiting a maximum fit is selectedas the best fit spine 56 for the cluster 50.

Third, the cluster placement component 42 selects and places unique seedspines 58, as further described below with reference to FIG. 7. Briefly,spine concept score vectors 57 are generated for each best fit spine 56and evaluated. Those best fit spines 56 having an adequate number ofassigned clusters 50 and which are sufficiently dissimilar to anypreviously selected best fit spines 56 are designated and placed as seedspines 58.

The cluster placement component 42 places any remaining unplaced bestfit spines 56 and clusters 50 that lack best fit spines 56 into spinegroups, as further described below with reference to FIG. 8. Briefly,anchor clusters 60 are selected based on similarities between unplacedcandidate spines 55 and candidate anchor clusters. Cluster spines aregrown by placing the clusters 50 in similarity precedence to previouslyplaced spine clusters or anchor clusters along vectors originating ateach anchor cluster 60. As necessary, clusters 50 are placed outward orin a new vector at a different angle from new anchor clusters 55.Finally, the spine groups are placed within the visualization 43 bytranslating the spine groups until there is no overlap, such asdescribed in commonly-assigned U.S. patent application Ser. No.10/084,401, filed Feb. 25, 2002, pending, the disclosure of which isincorporated by reference.

Each module or component is a computer program, procedure or modulewritten as source code in a conventional programming language, such asthe C++ programming language, and is presented for execution by the CPUas object or byte code, as is known in the art. The variousimplementations of the source code and object and byte codes can be heldon a computer-readable storage medium or embodied on a transmissionmedium in a carrier wave. The display generator 32 operates inaccordance with a sequence of process steps, as further described belowwith reference to FIG. 3.

Method Overview

FIG. 3 is a flow diagram showing a method 100 for arranging conceptclusters 50 in thematic neighborhood relationships in a two-dimensionalvisual display space, in accordance with the present invention. Themethod 100 is described as a sequence of process operations or steps,which can be executed, for instance, by a display generator 32 (shown inFIG. 1).

As an initial step, documents 14 are scored and clusters 50 aregenerated (block 101), such as described in commonly-assigned U.S.patent application Ser. No. 10/626,984, filed Jul. 25, 2003, pending,the disclosure of which is incorporated by reference. Next, one or morecluster concepts 53 are generated for each cluster 50 based oncumulative cluster concept scores 51 (block 102), as further describedbelow with reference to FIG. 4. The cluster concepts 53 are used toselect candidate spines 55 (block 103), as further described below withreference to FIG. 5, and the clusters 50 are then assigned to thecandidate spines 55 as best fit spines 56 (block 104), as furtherdescribed below with reference to FIG. 6. Unique seed spines areidentified from the best fit spines 56 and placed to create spine groups(block 105), along with any remaining unplaced best fit spines 56 andclusters 50 that lack best fit spines 56 (block 106), as furtherdescribed below with reference to FIGS. 7 and 8. Finally, the spinegroups are placed within the visualization 43 in the display space. Inthe described embodiment, each of the spine groups is placed so as toavoid overlap with other spine groups. In a further embodiment, thespine groups can be placed by similarity to other spine groups. Othercluster, spine, and spine group placement methodologies could also beapplied based on similarity, dissimilarity, attraction, repulsion, andother properties in various combinations, as would be appreciated by oneskilled in the art. The method then terminates.

Cluster Concept Generation

FIG. 4 is a flow diagram showing the routine 110 for generating clusterconcepts 53 for use in the method 100 of FIG. 3. One purpose of thisroutine is to identify the top ranked cluster concepts 53 that bestsummarizes the commonality of the documents in any given cluster 50based on cumulative document concept scores 51.

A cluster concept 53 is identified by iteratively processing througheach of the clusters 50 (blocks 111-118). During each iteration, thecumulative score 51 of each of the document concepts 47 for all of thedocuments 14 appearing in a cluster 50 are determined (block 112). Thecumulative score 51 can be calculated by summing over the documentconcept scores 48 for each cluster 50. The document concepts 47 are thenranked by cumulative score 51 as ranked cluster concepts 52 (block 113).In the described embodiment, the ranked cluster concepts 52 appear indescending order, but could alternatively be in ascending order. Next, acluster concept 53 is determined. The cluster concept 53 can be userprovided (block 114). Alternatively, each ranked cluster concept 52 canbe evaluated against an acceptance criteria (blocks 115 and 116) toselect a cluster concept 53. In the described embodiment, clusterconcepts 53 must meet the following criteria:

-   -   (1) be contained in the initial cluster center (block 115); and    -   (2) be contained in a minimum of two documents 14 or 30% of the        documents 14 in the cluster 50, whichever is greater (block        116).

-   The first criteria restricts acceptable ranked cluster concepts 52    to only those document concepts 47 that appear in a seed cluster    center theme of a cluster 50 and, by implication, are sufficiently    relevant based on their score vectors. Generally, a cluster seed    theme corresponds to the set of concepts appearing in a seed    document 49, but a cluster seed theme can also be specified by a    user or by using a dynamic threshold based on an analysis of the    similarities of the documents 14 from a center of each cluster 50,    such as described in commonly-assigned U.S. patent application Ser.    No. 10/626,984, filed Jul. 25, 2003, pending, the disclosure of    which is incorporated by reference The second criteria filters out    those document concepts 47 that are highly scored, yet not popular.    Other criteria and thresholds for determining acceptable ranked    cluster concepts 52 are possible.

If acceptable (blocks 115 and 116), the ranked cluster concept 52 isselected as a cluster concept 53 (block 117) and processing continueswith the next cluster (block 118), after which the routine returns.

Candidate Spine Selection

FIG. 5 is a flow diagram showing the routine 120 for selecting candidatespines 55 for use in the method 100 of FIG. 3. One purpose of thisroutine is to identify candidate spines 55 from the set of all potentialspines 55.

Each cluster concept 53 shared by two or more clusters 50 canpotentially form a spine of clusters 50. Thus, each cluster concept 53is iteratively processed (blocks 121-126). During each iteration, eachpotential spine is evaluated against an acceptance criteria (blocks122-123). In the described embodiment, a potential spine cannot bereferenced by only a single cluster 50 (block 122) or by more than 10%of the clusters 50 in the potential spine (block 123). Other criteriaand thresholds for determining acceptable cluster concepts 53 arepossible. If acceptable (blocks 122, 123), the cluster concept 53 isselected as a candidate spine concept 54 (block 124) and a candidatespine 55 is logically formed (block 125). Processing continues with thenext cluster (block 126), after which the routine returns.

Cluster to Spine Assignment

FIG. 6 is a flow diagram showing the routine 130 for assigning clusters50 to candidate spines 55 for use in the method 100 of FIG. 3. Onepurpose of this routine is to match each cluster 50 to a candidate spine55 as a best fit spine 56.

The best fit spines 56 are evaluated by iteratively processing througheach cluster 50 and candidate spine 55 (blocks 131-136 and 132-134,respectively). During each iteration for a given cluster 50 (block 131),the spine fit of a cluster concept 53 to a candidate spine concept 54 isdetermined (block 133) for a given candidate spine 55 (block 132). Inthe described embodiment, the spine fit F is calculated according to thefollowing equation:

$F = {{\log( \frac{popularity}{{rank}^{2}} )} \times {scale}}$where popularity is defined as the number of clusters 50 containing thecandidate spine concept 54 as a cluster concept 53, rank is defined asthe rank of the candidate spine concept 54 for the cluster 50, and scaleis defined as a bias factor for favoring a user specified concept orother predefined or dynamically specified characteristic. In thedescribed embodiment, a scale of 1.0 is used for candidate spine concept54 while a scale of 5.0 is used for user specified concepts. Processingcontinues with the next candidate spine 55 (block 134). Next, thecluster 50 is assigned to the candidate spine 55 having a maximum spinefit as a best fit spine 56 (block 135). Processing continues with thenext cluster 50 (block 136). Finally, any best fit spine 56 thatattracts only a single cluster 50 is discarded (block 137) by assigningthe cluster 50 to a next best fit spine 56 (block 138). The routinereturns.Generate Unique Spine Group Seeds

FIG. 7 is a flow diagram showing the routine 140 for placing unique seedspines for use in the method 100 of FIG. 3. One purpose of this routineis to identify and place best fit spines 56 into the visualization 43 asunique seed spines 58 for use as anchors for subsequent candidate spines55.

Candidate unique seed spines are selected by first iterativelyprocessing through each best fit spine 56 (blocks 141-144). During eachiteration, a spine concept score vector 57 is generated for only thosespine concepts corresponding to each best fit spine 56 (block 142). Thespine concept score vector 57 aggregates the cumulative cluster conceptscores 51 for each of the clusters 50 in the best fit spine 56. Eachspine concept score in the spine concept score vector 57 is normalized,such as by dividing the spine concept score by the length of the spineconcept score vector 57 (block 143). Processing continues for eachremaining best fit spine 56 (block 144), after which the best fit spines56 are ordered by number of clusters 50. Each best fit spine 56 is againiteratively processed (blocks 146-151). During each iteration, best fitspines 56 that are not sufficiently large are discarded (block 147). Inthe described embodiment, a sufficiently large best fit spine 56contains at least five clusters 50. Next, the similarities of the bestfit spine 56 to each previously-selected unique seed spine 58 iscalculated and compared (block 148). In the described embodiment, bestfit spine similarity is calculated as the cosine of the cluster conceptscore vectors 59, which contains the cumulative cluster concept scores51 for the cluster concepts 53 of each cluster 50 in the best fit spine56 or previously-selected unique seed spine 58. Best fit spines 56 thatare not sufficiently dissimilar are discarded (block 149). Otherwise,the best fit spine 56 is identified as a unique seed spine 58 and isplaced in the visualization 43 (block 150). Processing continues withthe next best fit spine 56 (block 151), after which the routine returns.

Remaining Spine Placement

FIG. 8 is a flow diagram showing the routine 160 for placing remainingcandidate spines 55 for use in the method 100 of FIG. 3. One purpose ofthis routine is to identify and place any remaining unplaced best fitspines 56 and clusters 50 that lack best fit spines 56 into thevisualization 43.

First, any remaining unplaced best fit spines 56 are ordered by numberof clusters 50 assigned (block 161). The unplaced best fit spine 56 areiteratively processed (blocks 162-175) against each of thepreviously-placed spines (blocks 163-174). During each iteration, ananchor cluster 60 is selected from the previously placed spine 58 (block164), as further described below with reference to FIG. 9. The cluster50 contained in the best fit spine 56 that is most similar to theselected anchor cluster 60 is then selected (block 165). In thedescribed embodiment, cluster similarity is calculated as cosine valueof the cumulative cluster concept vectors 51, although otherdeterminations of cluster similarity are possible, including minimum,maximum, and median similarity bounds. The spine clusters 50 are graftedonto the previously placed spine along a vector defined from the centerof the anchor cluster 55 (block 166), as further described below withreference to FIG. 12. If any of the spine clusters are not placed (block167), another anchor cluster 60 is selected (block 168), as furtherdescribed below with reference to FIG. 9. Assuming another anchorcluster 60 is selected (block 169), the spine clusters are again placed(block 166), as further described below with reference to FIG. 12.Otherwise, if another anchor cluster 60 is not selected (block 169), thecluster 50 is placed in a related area (block 170). In one embodiment,unanchored best fit spines 56 become additional spine group seeds. In afurther embodiment, unanchored best fit spines 56 can be placed adjacentto the best fit anchor cluster 60 or in a display area of thevisualization 43 separately from the placed best fit spines 56.

If the cluster 50 is placed (block 167), the best fit spine 56 islabeled as containing candidate anchor clusters 60 (block 171). If thecurrent vector forms a maximum line segment (block 172), the angle ofthe vector is changed (block 173). In the described embodiment, amaximum line segment contains more than 25 clusters 50, although anyother limit could also be applied. Processing continues with each seedspine (block 174) and remaining unplaced best fit spine 56 (block 175).Finally, any remaining unplaced clusters 50 are placed (block 176). Inone embodiment, unplaced clusters 50 can be placed adjacent to a bestfit anchor cluster 60 or in a display area of the visualization 43separately from the placed best fit spines 56. The routine then returns.

Anchor Cluster Selection

FIG. 9 is a flow diagram showing the function 180 for selecting ananchor cluster 60 for use in the routine 160 of FIG. 8. One purpose ofthis routine is to return a set of anchor clusters 60, which contain thespine concept and which are ordered by similarity to the largest cluster50 in the spine.

Each candidate anchor cluster 60 is iteratively processed (blocks181-183) to determine the similarity between a given cluster 50 and eachcandidate anchor cluster 60 (block 182). In one embodiment, each clustersimilarity is calculated as cosine value concept vectors, although otherdeterminations of cluster similarity are possible, including minimum,maximum, and median similarity bounds. The most similar candidate anchorcluster 60 is identified (block 184) and, if found, chosen as the anchorcluster 60 (block 187), such as described in commonly-assigned U.S.patent application Ser. No. 10/084,401, filed Feb. 25, 2002, pending,the disclosure of which is incorporated by reference. Otherwise, if notfound (block 185), the largest cluster 50 assigned to the unique seedspine 58 is chosen as the anchor cluster 60 (block 186). The functionthen returns set of the anchor clusters 60 and the unique seed spine 58becomes a seed for a new spine group (block 188).

Cluster Spine Example

FIG. 10 is a data representation diagram 200 showing, by way of example,a view of a cluster spine 202. Clusters are placed in a cluster spine202 along a vector 203, preferably defined from center of an anchorcluster. Each cluster in the cluster spine 202, such as endpointclusters 204 and 206 and midpoint clusters 205, group documents 207sharing a popular concept, that is, assigned to a best-fit concept 53.The cluster spine 202 is placed into a visual display area 201 togenerate a two-dimensional spatial arrangement. To represent datainter-relatedness, the clusters 204-206 in each cluster spine 202 areplaced along a vector 203 arranged in order of cluster similarity,although other line shapes and cluster orderings can be used.

The cluster spine 202 visually associates those clusters 204-206 sharinga common popular concept. A theme combines two or more concepts. Duringcluster spine creation, those clusters 204-206 having available anchorpoints are identified for use in grafting other cluster spines sharingpopular thematically-related concepts, as further described below withreference to FIGS. 11A-C.

Anchor Points Example

FIGS. 11A-C are data representation diagrams 210, 220, 230 showinganchor points within cluster spines. A placed cluster having at leastone open edge constitutes a candidate anchor point 54. Referring firstto FIG. 11A, a starting endpoint cluster 212 of a cluster spine 211functions as an anchor point along each open edge 215 a-e at primary andsecondary angles.

An open edge is a point along the edge of a cluster at which anothercluster can be adjacently placed. In the described embodiment, clustersare placed with a slight gap between each cluster to avoid overlappingclusters. Otherwise, a slight overlap within 10% with other clusters isallowed. An open edge is formed by projecting vectors 214 a-e outwardfrom the center 213 of the endpoint cluster 212, preferably atnormalized angles. The clusters in the cluster spine 211 are arranged inorder of cluster similarity.

In one embodiment, given 0≦σ<Π, where σ is the angle of the currentcluster spine 211, the normalized angles for largest endpoint clustersare at one third Π to minimize interference with other spines whilemaximizing the degree of interrelatedness between spines. If the clusterordinal spine position is even, the primary angle is

$\sigma + \frac{\Pi}{3}$and the secondary angle is

$\sigma - {\frac{\Pi}{3}.}$Otherwise, the primary angle is

$\sigma - \frac{\Pi}{3}$and the secondary angle is

$\sigma + {\frac{\Pi}{3}.}$Other evenly divisible angles could be also used.

Referring next to FIG. 11B, the last endpoint cluster 222 of a clusterspine 221 also functions as an anchor point along each open edge. Theendpoint cluster 222 contains the fewest number of concepts. Theclusters in the cluster spine 221 are arranged in order of similarity tothe last placed cluster. An open edge is formed by projecting vectors224 a-c outward from the center 223 of the endpoint cluster 222,preferably at normalized angles.

In one embodiment, given 0≦σ<Π, where σ is the angle of the currentcluster spine 221, the normalized angles for smallest endpoint clustersare at one third Π, but only three open edges are available to graftother thematically-related cluster spines. If the cluster ordinal spineposition is even, the primary angle is

$\sigma + \frac{\Pi}{3}$and the secondary angle is

$\sigma - {\frac{\Pi}{3}.}$Otherwise, the primary angle is

$\sigma - \frac{\Pi}{3}$and the secondary angle is

$\sigma + {\frac{\Pi}{3}.}$Other evenly divisible angles could be also used.

Referring finally to FIG. 11C, a midpoint cluster 232 of a cluster spine231 functions as an anchor point for a separate unplaced cluster spinealong each open edge. The midpoint cluster 232 is located intermediateto the clusters in the cluster spine 231 and defines an anchor pointalong each open edge. An open edge is formed by projecting vectors 234a-b outward from the center 233 of the midpoint cluster 232, preferablyat normalized angles. Unlike endpoint clusters 212, 222 the midpointcluster 232 can only serve as an anchor point along tangential vectorsnon-coincident to the vector forming the cluster spine 231. Accordingly,endpoint clusters 212, 222 include one additional open edge serving as acoincident anchor point.

In one embodiment, given 0≦σ<Π, where σ is the angle of the currentcluster spine 231, the normalized angles for midpoint clusters are atone third Π, but only two open edges are available to graft otherthematically-related cluster spines. Empirically, limiting the number ofavailable open edges to those facing the direction of cluster similarityhelps to maximize the interrelatedness of the overall display space.

Grafting a Spine Cluster Onto a Spine

FIG. 12 is a flow diagram showing the function 240 for grafting a spinecluster 50 onto a spine for use in the routine 160 of FIG. 8. Onepurpose of this routine is to attempt to place a cluster 50 at an anchorpoint in a cluster spine either along or near an existing vector, ifpossible, as further described below with reference to FIG. 13.

An angle for placing the cluster 50 is determined (block 241), dependentupon whether the cluster against which the current cluster 50 is beingplaced is a starting endpoint, midpoint, or last endpoint cluster, asdescribed above with reference to FIGS. 11A-C. If the cluster ordinalspine position is even, the primary angle is

$\sigma + \frac{\Pi}{3}$and the secondary angle is

$\sigma - {\frac{\Pi}{3}.}$Otherwise, the primary angle is

$\sigma - \frac{\Pi}{3}$and the secondary angle is

$\sigma + {\frac{\Pi}{3}.}$Other evenly divisible angles could be also used. The cluster 50 is thenplaced using the primary angle (block 242). If the cluster 50 is thefirst cluster in a cluster spine but cannot be placed using the primaryangle (block 243), the secondary angle is used and the cluster 50 isplaced (block 244). Otherwise, if the cluster 50 is placed but overlapsmore than 10% with existing clusters (block 245), the cluster 50 ismoved outward (block 246) by the diameter of the cluster 50. Finally, ifthe cluster 50 is satisfactorily placed (block 247), the functionreturns an indication that the cluster 50 was placed (block 248).Otherwise, the function returns an indication that the cluster was notplaced (block 249).Cluster Placement Relative to an Anchor Point Example

FIG. 13 is a data representation diagram showing cluster placementrelative to an anchor point. Anchor points 266, 267 are formed along anopen edge at the intersection of a vector 263 a, 263 b, respectively,drawn from the center 262 of the cluster 261. The vectors are preferablydrawn at a normalized angle, such as

$\frac{\Pi}{3}$in one embodiment, relative to the vector 268 forming the cluster spine268.Completed Cluster Placement Example

FIG. 14 is a data representation diagram 270 showing a completed clusterplacement. The clusters 272, 274, 276, 278 placed in each of the clusterspines 271, 273, 275, 277 are respectively matched to popular concepts,that is, best-fit concepts 53. Slight overlap 279 between graftedclusters is allowed. In one embodiment, no more than 10% of a clustercan be covered by overlap. The singleton clusters 280, however, do notthematically relate to the placed clusters 272, 274, 276, 278 in clusterspines 271, 273, 275, 277 and are therefore grouped as individualclusters in non-relational placements.

While the invention has been particularly shown and described asreferenced to the embodiments thereof, those skilled in the art willunderstand that the foregoing and other changes in form and detail maybe made therein without departing from the spirit and scope of theinvention.

1. A system for arranging clusters in a display by theme, comprising: atheme generator to find themes within a plurality of clusters comprisingone or more concepts per theme and one or more documents per cluster;and a spine placer, comprising: an assigner to assign by theme thoseclusters that meet a best fit criteria into a set of spines with no morethan one spine formed per theme; an identifier to retain those spinesthat are unique from the other spines in the set; and an arranger toarrange the spines that were retained in the set in a display.
 2. Asystem according to claim 1, further comprising: a theme identifier toidentify the themes by evaluating cumulative scores for the conceptsdetermined over all of the clusters.
 3. A system according to claim 2,further comprising: a ranker to rank the cumulative scores for theconcepts; and an evaluator to evaluate the cumulative scores against anacceptance criteria comprising at least one of cluster membership,frequency of occurrence, and user specified.
 4. A system according toclaim 1, further comprising: a selector to select candidate spinescomprising a plurality of concepts identified from all of the clustersby theme as meeting an acceptance criteria to potentially becomeassigned to the set of spines.
 5. A system according to claim 4, whereinthe acceptance criteria is defined comprising at least one of a minimumcluster reference count, maximum cluster reference count, and userspecified.
 6. A system according to claim 4, further comprising: amatcher to match the clusters to the candidate spines based on the bestfit criteria.
 7. A system according to claim 6, wherein the best fitcriteria comprises an equation:$F = {{\log( \frac{popularity}{{rank}^{2}} )} \times {scale}}$where popularity comprises a count of those clusters containing one ofthe concepts in at least one of the candidate spines, rank comprises aranking of the theme of the at least one candidate spine, and scalecomprises a user specified bias factor.
 8. A system according to claim1, further comprising: a remover to remove the spines from the set,which are at least one of insufficiently large in terms of clusters andinsufficiently dissimilar to the other spines in the set.
 9. A systemaccording to claim 1, further comprising: a grafter to graft the spinesthat were not retained in the set onto the spines that were arranged inthe display, which share closest similarities.
 10. A system according toclaim 1, wherein the spines are placed in the display based on at leastone of overlap avoidance and closest similarities to those spinesalready arranged in the display.
 11. A method for arranging clusters ina display by theme, comprising: finding themes within a plurality ofclusters comprising one or more concepts per theme and one or moredocuments per cluster; assigning by theme those clusters that meet abest fit criteria into a set of spines with no more than one spineformed per theme; retaining those spines that are unique from the otherspines in the set; and arranging the spines that were retained in theset in a display.
 12. A method according to claim 11, furthercomprising: identifying the themes by evaluating cumulative scores forthe concepts determined over all of the clusters.
 13. A method accordingto claim 12, further comprising: ranking the cumulative scores for theconcepts; and evaluating the cumulative scores against an acceptancecriteria comprising at least one of cluster membership, frequency ofoccurrence, and user specified.
 14. A method according to claim 11,further comprising: selecting candidate spines comprising a plurality ofconcepts identified from all of the clusters by theme as meeting anacceptance criteria to potentially become assigned to the set of spines.15. A method according to claim 14, further comprising: defining theacceptance criteria comprising at least one of a minimum clusterreference count, maximum cluster reference count, and user specified.16. A method according to claim 14, further comprising: matching theclusters to the candidate spines based on the best fit criteria.
 17. Amethod according to claim 16, wherein the best fit criteria comprises anequation:$F = {{\log( \frac{popularity}{{rank}^{2}} )} \times {scale}}$where popularity comprises a count of those clusters containing one ofthe concepts in at least one of the candidate spines, rank comprises aranking of the theme of the at least one candidate spine, and scalecomprises a user specified bias factor.
 18. A method according to claim11, further comprising: removing the spines from the set, which are atleast one of insufficiently large in terms of clusters andinsufficiently dissimilar to the other spines in the set.
 19. A methodaccording to claim 11, further comprising: grafting the spines that werenot retained in the set onto the spines that were arranged in thedisplay, which share closest similarities.
 20. A method according toclaim 11, further comprising: placing the spines in the display based onat least one of overlap avoidance and closest similarities to thosespines already arranged in the display.
 21. A computer-readable storagemedium holding code for performing the method according to claim
 11. 22.A structured record for arranging clusters in a display by theme,comprising: structured data comprising: themes from within a pluralityof clusters comprising one or more concepts per theme and one or moredocuments per cluster; and a set of spines comprising those clustersassigned by theme that meet a best fit criteria with no more than onespine formed per theme, wherein those spines that are unique from theother spines are retained in the set to be arranged in a display.
 23. Astructured record according to claim 22, wherein the spines are removedfrom the set, which are at least one of insufficiently large in terms ofclusters and insufficiently dissimilar to the other spines in the set.24. Stored data for arranging clusters in a display by theme,comprising: a plurality of clusters comprising one or more documentseach; themes identified within the clusters and comprising one or moreconcepts per theme; and a set of displayable spines comprising thoseclusters assigned by theme and that meet a best fit criteria with nomore than one spine formed per theme, wherein those spines that areunique from the other spines in the set are retained.
 25. A displayobject for arranging clusters by theme, comprising: a set of displayablespines, comprising: clusters that meet a best fit criteria assigned bythemes comprising one or more concepts per theme with no more than onespine formed per theme and one or more documents per cluster, whereinretaining those spines that are unique from the other spines areretained in the set for display.
 26. A display object according to claim25, further comprising: a set of grafted spines comprising those spinesthat were not retained in the set, which share closest similarities tothe set of displayable spines.